home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.5 Complementary Applications 2004 February / SGI IRIX 6.5 Complementary Applications 2004 February.iso / dist / cde.idb / usr / dt / share / include / Xm / PushBGP.h.z / PushBGP.h
Encoding:
C/C++ Source or Header  |  2003-11-18  |  6.9 KB  |  223 lines

  1. /*
  2.  * PushBGP.h
  3.  *
  4.  * Copyright 2000, Silicon Graphics, Inc.
  5.  * ALL RIGHTS RESERVED
  6.  * 
  7.  * UNPUBLISHED -- Rights reserved under the copyright laws of the United
  8.  * States.   Use of a copyright notice is precautionary only and does not
  9.  * imply publication or disclosure.
  10.  *
  11.  * U.S. GOVERNMENT RESTRICTED RIGHTS LEGEND:
  12.  * Use, duplication or disclosure by the Government is subject to restrictions
  13.  * as set forth in FAR 52.227.19(c)(2) or subparagraph (c)(1)(ii) of the Rights
  14.  * in Technical Data and Computer Software clause at DFARS 252.227-7013 and/or
  15.  * in similar or successor clauses in the FAR, or the DOD or NASA FAR
  16.  * Supplement.  Contractor/manufacturer is Silicon Graphics, Inc.,
  17.  * 2011 N. Shoreline Blvd. Mountain View, CA 94039-7311.
  18.  *
  19.  * THE CONTENT OF THIS WORK CONTAINS CONFIDENTIAL AND PROPRIETARY
  20.  * INFORMATION OF SILICON GRAPHICS, INC. ANY DUPLICATION, MODIFICATION,
  21.  * DISTRIBUTION, OR DISCLOSURE IN ANY FORM, IN WHOLE, OR IN PART, IS STRICTLY
  22.  * PROHIBITED WITHOUT THE PRIOR EXPRESS WRITTEN PERMISSION OF SILICON
  23.  * GRAPHICS, INC.
  24.  */
  25. /* 
  26.  * @OSF_COPYRIGHT@
  27.  * (c) Copyright 1990, 1991, 1992, 1993, 1994 OPEN SOFTWARE FOUNDATION, INC.
  28.  * ALL RIGHTS RESERVED
  29.  *  
  30. */ 
  31. /*
  32.  * HISTORY
  33.  * Motif Release 1.2.5
  34. */
  35. /*   $XConsortium: PushBGP.h /main/cde1_maint/2 1995/08/18 19:16:32 drk $ */
  36. /*
  37. *  (c) Copyright 1989, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
  38. /*
  39. *  (c) Copyright 1987, 1988, 1989, 1990, 1991, 1992 HEWLETT-PACKARD COMPANY */
  40. /*
  41. *  (c) Copyright 1988 MASSACHUSETTS INSTITUTE OF TECHNOLOGY  */
  42. /*
  43. *  (c) Copyright 1988 MICROSOFT CORPORATION */
  44. #ifndef _XmPButtonGP_h
  45. #define _XmPButtonGP_h
  46.  
  47. #include <Xm/PushBG.h>
  48. #include <Xm/LabelGP.h>
  49.  
  50. #ifdef __cplusplus
  51. extern "C" {
  52. #endif
  53.  
  54. /*************************************************************/
  55. /* The PushButton Gadget Cache Object's class and instance records*/
  56. /*************************************************************/
  57.  
  58. typedef struct _XmPushButtonGCacheObjClassPart
  59. {
  60.     int foo;
  61. } XmPushButtonGCacheObjClassPart;
  62.  
  63.                     
  64. typedef struct _XmPushButtonGCacheObjClassRec  
  65. {
  66.     ObjectClassPart                     object_class;
  67.         XmExtClassPart                      ext_class;
  68.     XmLabelGCacheObjClassPart           label_class_cache;
  69.     XmPushButtonGCacheObjClassPart      pushbutton_class_cache;
  70. } XmPushButtonGCacheObjClassRec;
  71.  
  72. externalref XmPushButtonGCacheObjClassRec xmPushButtonGCacheObjClassRec;
  73.  
  74.  
  75. typedef struct _XmPushButtonGCacheObjPart
  76. {
  77.    Boolean         fill_on_arm;
  78.    Pixel            arm_color;
  79.    Pixmap        arm_pixmap;
  80.    Pixmap           unarm_pixmap;
  81.    unsigned char    multiClick;     /* KEEP/DISCARD resource */
  82.    Dimension        default_button_shadow_thickness;
  83.              /* New resource - always add it to gadget's dimension. */
  84.  
  85.    GC               fill_gc;
  86.    GC               background_gc;
  87.    XtIntervalId     timer;
  88.    
  89. } XmPushButtonGCacheObjPart;
  90.  
  91. typedef struct _XmPushButtonGCacheObjRec
  92. {
  93.     ObjectPart                   object;
  94.     XmExtPart                    ext;
  95.     XmLabelGCacheObjPart         label_cache;
  96.     XmPushButtonGCacheObjPart    pushbutton_cache;
  97. } XmPushButtonGCacheObjRec;
  98.  
  99.  
  100. /* PushButton class structure */
  101.  
  102. typedef struct _XmPushButtonGadgetClassPart
  103. {
  104.     XtPointer extension;  /* Pointer to extension record */
  105. } XmPushButtonGadgetClassPart;
  106.  
  107.  
  108. /* Full class record declaration for PushButton class */
  109.  
  110. typedef struct _XmPushButtonGadgetClassRec 
  111. {
  112.    RectObjClassPart             rect_class;
  113.    XmGadgetClassPart            gadget_class;
  114.    XmLabelGadgetClassPart       label_class;
  115.    XmPushButtonGadgetClassPart  pushbutton_class;
  116.  
  117. } XmPushButtonGadgetClassRec;
  118.  
  119.  
  120. externalref XmPushButtonGadgetClassRec xmPushButtonGadgetClassRec;
  121.  
  122.  
  123. /* PushButton instance record */
  124.  
  125. typedef struct _XmPushButtonGadgetPart
  126. {
  127.    XtCallbackList   activate_callback;
  128.    XtCallbackList   arm_callback;
  129.    XtCallbackList   disarm_callback;
  130.  
  131.    Dimension        show_as_default;
  132.    Boolean         armed;
  133.    int              click_count;
  134.  
  135.    Boolean        compatible;      /* if false it is Motif 1.1 else Motif 1.0  */
  136.                                   /* not cached for performance reasons */
  137.    
  138.    XmPushButtonGCacheObjPart  *cache; /* Replace cache instance fields */
  139.                     /* with a pointer */
  140. } XmPushButtonGadgetPart;
  141.  
  142. /* Full instance record declaration */
  143.  
  144. typedef struct _XmPushButtonGadgetRec {
  145.    ObjectPart              object;
  146.    RectObjPart             rectangle;
  147.    XmGadgetPart            gadget;
  148.    XmLabelGadgetPart       label;
  149.    XmPushButtonGadgetPart   pushbutton;
  150. } XmPushButtonGadgetRec;
  151.  
  152. /* MACROS */
  153. /**********/
  154.  
  155. /* Macros for cached instance fields */
  156.  
  157. #define PBG_FillOnArm(w)        (((XmPushButtonGadget) (w)) -> \
  158.                        pushbutton.cache->fill_on_arm)
  159. #define PBG_ArmColor(w)            (((XmPushButtonGadget) (w)) -> \
  160.                        pushbutton.cache->arm_color)
  161. #define PBG_FillGc(w)            (((XmPushButtonGadget) (w)) -> \
  162.                        pushbutton.cache->fill_gc)
  163. #define PBG_BackgroundGc(w)        (((XmPushButtonGadget) (w)) -> \
  164.                        pushbutton.cache->background_gc)
  165. #define PBG_Timer(w)            (((XmPushButtonGadget) (w)) -> \
  166.                        pushbutton.cache->timer)
  167. #define PBG_ArmPixmap(w)        (((XmPushButtonGadget) (w)) -> \
  168.                        pushbutton.cache->arm_pixmap)
  169. #define PBG_UnarmPixmap(w)        (((XmPushButtonGadget) (w)) -> \
  170.                        pushbutton.cache->unarm_pixmap)
  171. #define PBG_MultiClick(w)              (((XmPushButtonGadget) (w)) -> \
  172.                                       pushbutton.cache->multiClick)
  173. #define PBG_DefaultButtonShadowThickness(w)     (((XmPushButtonGadget) (w)) -> \
  174.                        pushbutton.cache->default_button_shadow_thickness)
  175.  
  176. /* Macros for uncached instance fields */
  177.  
  178. #define PBG_ActivateCallback(w)        (((XmPushButtonGadget) (w)) -> \
  179.                        pushbutton.activate_callback)
  180. #define PBG_ArmCallback(w)        (((XmPushButtonGadget) (w)) -> \
  181.                        pushbutton.arm_callback)
  182. #define PBG_DisarmCallback(w)        (((XmPushButtonGadget) (w)) -> \
  183.                        pushbutton.disarm_callback)
  184. #define PBG_Armed(w)            (((XmPushButtonGadget) (w)) -> \
  185.                        pushbutton.armed)
  186. #define PBG_ClickCount(w)      (((XmPushButtonGadget) (w)) -> \
  187.                        pushbutton.click_count)
  188. #define PBG_Compatible(w)      (((XmPushButtonGadget) (w)) -> \
  189.                        pushbutton.compatible)
  190. #define PBG_ShowAsDefault(w)        (((XmPushButtonGadget) (w)) -> \
  191.                        pushbutton.show_as_default)
  192.  
  193. /******************************/
  194. /* Convenience Macros         */
  195. /******************************/
  196.  
  197. #define PBG_Cache(w)            (((XmPushButtonGadget)(w))->\
  198.                        pushbutton.cache)
  199. #define PBG_ClassCachePart(w) \
  200.     (((XmPushButtonGadgetClass)xmPushButtonGadgetClass)->gadget_class.cache_part)
  201.  
  202.  
  203. /********    Private Function Declarations    ********/
  204. #ifdef _NO_PROTO
  205.  
  206. extern void _XmClearBGCompatibility() ;
  207.  
  208. #else
  209.  
  210. extern void _XmClearBGCompatibility( 
  211.                         Widget pbg) ;
  212.  
  213. #endif /* _NO_PROTO */
  214. /********    End Private Function Declarations    ********/
  215.  
  216.  
  217. #ifdef __cplusplus
  218. }  /* Close scope of 'extern "C"' declaration which encloses file. */
  219. #endif
  220.  
  221. #endif /* _XmPButtonGP_h */
  222. /* DON'T ADD ANYTHING AFTER THIS #endif */
  223.